#include <cmath>
#include <iostream>
#include <vector>

/**
 * PAT A 1103 Integer Factorization
 */

int powi(int a, int k) {
    int result = 1;
    while (k != 0) {
        if ((k & 1) != 0) result *= a;
        a *= a;
        k >>= 1;
    }
    return result;
}

std::vector<int> powers;
int maxBase;
std::vector<int> chosen;
std::vector<int> sol;
int maxSum = 0;

void search(int n, int k, int p, int curIdx) {
    // Found solution
    if (n == 0 && k == 0) {
        // Compute sum
        int sum = 0;
        for (int i = 1; i <= maxBase; i++)
            for (int j = 0; j < chosen[i]; j++) sum += i;

        // Print if larger than maximum sum
        if (sum > maxSum) {
            maxSum = sum;
            sol = chosen;
        }
        return;
    }

    // No more powers to add
    if (k == 0 || curIdx == 0) return;

    // Chose numbers several times
    int curPow = powers[curIdx];
    if (curPow > n) return search(n, k, p, curIdx - 1);  // skip this power
    int maxCount = n / curPow;
    for (int i = maxCount; i >= 0; i--) {
        int nRemain = n - curPow * i;
        if (nRemain < 0) continue;
        int kRemain = k - i;
        if (kRemain < 0) continue;
        chosen[curIdx] = i;
        search(nRemain, kRemain, p, curIdx - 1);
        chosen[curIdx] = 0;
    }
}

int main() {
    // Read parameters
    int n, k, p;
    scanf("%d %d %d", &n, &k, &p);

    // Precompute powers
    maxBase = powf(n, 1.f / p);
    powers = std::vector<int>(maxBase + 1);
    for (int i = 1; i <= maxBase; i++) powers[i] = powi(i, p);

    // Search for factorization
    chosen = std::vector<int>(maxBase + 1, 0);
    sol = std::vector<int>(maxBase + 1);
    sol[0] = -1;
    search(n, k, p, maxBase);
    if (sol[0] == -1)
        printf("Impossible\n");
    else {
        printf("%d = ", n);
        bool first = true;
        for (int i = maxBase; i > 0; i--) {
            int count = sol[i];
            for (int j = 0; j < count; j++) {
                if (first)
                    first = false;
                else
                    printf(" + ");
                printf("%d^%d", i, p);
            }
        }
        printf("\n");
    }
    return 0;
}